<?php 	namespace Common\Model;
use Hdphp\Model\Model;
/*
 * 分类管理模型
 * */
   class Cate extends Model
   {
// 	//操作数据表
   	protected $table = "cate";
//	//自动验证
	protected $validate = array(
		array("cname","required","分类名称不能为空",3,3),
		array("cname","maxlen:10","分类名字不能超过10个字",3,3),
		array("sort","num:1,123456","分类排序必须为数字",3,3),
	);
	/*
	 * 添加
	 * */
	 public function store()
	 {
	 	//自动验证
	 	if(!$this->create()) return false;
		//执行添加
		return $this->add();
	 }
	 /*
	  * 获得除了自己以及自己子集的数据
	  * */
	  public function getCataData($cid)
	  {
//	  	1.获得当前所有子集(数组数据),找那一条数据的子集
		$cids = $this->getSon($this->get(),$cid);
//		2.将自己压入数组，
		$cids[] = $cid;
//		3.获得除了自己以及自己所有子集的数据
		$cids = implode(',',$cids);
		$data = $this->where("cid not in ($cids)")->get();
//		变成树状结构
		return	Data::tree($data,"cname");
	  }
	 /*
	  * 找子集
	  * */ 
	  public function getSon($data,$cid)
	  {
	  	static $temp = array();
		foreach ($data as $k => $v)
		{
			if($cid == $v['pid'])
			{
				$temp[] = $v['cid'];
				$this->getSon($data, $v['cid']);
			}
		}
		return $temp;
	  }
	  /*
	   * 编辑分类
	   * */
	   public function edit()
	   {
	   		//自动验证
	   		if(!$this->create()) return false;
//			执行编辑
			return $this->save();
	   }
	  /*
	   * 删除
	   * */
	   public function del($cid)
	   {
	   		$pid = $this->where('cid',$cid)->pluck("pid");
			$this->where("pid",$cid)->update(array("pid"=>$pid));
			$this->where("cid",$cid)->delete();
	   }
 }

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 